// shop page
// ============

define(['zepto', 'utils', 'JST', 'labelSelect'], function($, utils, JST) {
  return {
    init: function(data) {
      this.bindSubmit()
      this.checkClickButton()
    },

    checkClickButton: function() {

      var $submitButton = $("a.js-submit")
          that = this

      $("input").on('change label:checked', function(event) {
        event.preventDefault();

        var data = that.onInitData()

        if(that.onCheckData(data)) {
          $submitButton.addClass('active')
          that.bindSubmit()
        }
      })

    },

    bindSubmit: function() {
      var $submitButton = $("a.js-submit")
          $form = $("a.js-submit").parents("form")
      	  that = this

      $submitButton.on('click', function(e){
      	e.preventDefault()

      	var data = that.onInitData()
      		url  =  $(this).attr('href')

      	// validate all input
        if(that.onValidateData(data)) {
          $form.submit()
        }

      })
    },

    // init data
    onInitData: function() {
      return {
        'nickname': {
          'value': $('input[name="nickname"]').val().trim(),
          'message': '数据错误'
        },
        'height': {
          'value': $('input[name="height"]').val().trim(),
          'message': '数据错误'
        },
        'weight': {
          'value': $('input[name="weight"]').val().trim(),
          'message': '数据错误'
        },
        'birthday': {
          'value': $('input[name="birthday"]').val().trim(),
          'message': '数据错误'
        },
        'sex': {
          'value': $('input[name="sex"]').val().trim(),
          'message': '数据错误'
        },
        'physiology': {
          'value': $('input[name="physiology"]').val().trim(),
          'message': '数据错误'
        }
      }
    },

    onCheckData: function(data) {

      var valid = _.find(data, function(item) {
        return !item.value
      })

      var isFatOk = $('input[name="fat"]:checked').length > 0 ? true : false

      var isExerciseOk = $('input[name="exercise"]:checked').length > 0 ? true : false

      if(valid == undefined && isFatOk && isExerciseOk) {
        return true
      }

      return false
    },

    onValidateData: function(data) {
      
      var fat = $('input[name="fat"]:checked')

      if(fat.length == 0) {
      	return $.toast('请选择体型')
      }else {
      	data.fat = { 'value': $(fat[0]).val() }
      }

      var exercise = $('input[name="exercise"]:checked')

      if(exercise.length == 0) {
      	return $.toast('请选择运动量')
      }else {
      	data.exercise = { 'value': $(exercise[0]).val() }
      }

      return true
    }
    
  }
})